package com.example.zhengchaojun.arcgis.util;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;

/**
 * 类描述：视图动态添加工具类
 * 作者：郑朝军 on 2017/8/8 15:51
 * 邮箱：1250393285@qq.com
 * 公司：武汉智博创享科技有限公司
 * 修改人：郑朝军 on 2017/8/8 15:51
 * 修改备注：
 */
public class ViewUtils
{
    /**
     * 添加布局到rootGroup中
     *
     * @param rootGroup 根视图
     * @param layoutID  你要添加的布局文件
     * @param activity  上下文
     */
    public static void addView(ViewGroup rootGroup, int layoutID, Activity activity)
    {
        View conentGroup = LayoutInflater.from(activity).inflate(layoutID, rootGroup, false);
        rootGroup.addView(conentGroup);
    }

    /**
     * 添加布局到rootGroup中
     *
     * @param rootGroup 根视图
     * @param layoutID  你要添加的布局文件
     * @param activity  上下文
     * @return 返回内容布局
     */
    public static ViewGroup addViewReturn(ViewGroup rootGroup, int layoutID, Activity activity)
    {
        ViewGroup conentGroup = (ViewGroup) LayoutInflater.from(activity).inflate(layoutID, rootGroup, false);
        rootGroup.addView(conentGroup);
        return conentGroup;
    }

    /**
     * 添加布局到rootGroup中
     *
     * @param rootGroup 根视图
     * @param layoutID  你要添加的布局文件
     * @param activity  上下文
     */
    public static void addViewUnroot(ViewGroup rootGroup, int layoutID, Activity activity)
    {
        ViewGroup conentGroup = (ViewGroup) LayoutInflater.from(activity).inflate(layoutID, null);
        rootGroup.addView(conentGroup);
    }

    /**
     * 添加布局到rootGroup中(填充整个窗口)
     *
     * @param rootGroup 根视图
     * @param layoutID  你要添加的布局文件
     * @param activity  上下文
     */
    public static void addViewMatchMatch(ViewGroup rootGroup, int layoutID, Activity activity)
    {
        ViewGroup conentGroup = (ViewGroup) LayoutInflater.from(activity).inflate(layoutID, rootGroup, false);
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
                FrameLayout.LayoutParams.MATCH_PARENT);
        rootGroup.addView(conentGroup, params);
    }

    /**
     * 设置rootGroup中所有按钮不能点击
     *
     * @param rootGroup 根视图
     */
    public static void setAllViewNoEdit(ViewGroup rootGroup)
    {
        for (int index = 0; index < rootGroup.getChildCount(); index++)
        {
            View view = rootGroup.getChildAt(index);
            view.setEnabled(false);
            if (view instanceof ViewGroup)
            {
                setAllViewNoEdit((ViewGroup) view);
            }
        }
    }

    /**
     * 开启(禁用)所有子控件<br/>
     */
    public static void setChildViewEnabled(ViewGroup rootGroup, boolean enabled)
    {
        for (int index = 0; index < rootGroup.getChildCount(); index++)
        {
            View view = rootGroup.getChildAt(index);
            view.setEnabled(enabled);
            if (view instanceof ViewGroup)
            {
                setChildViewEnabled((ViewGroup) view, enabled);
            }
        }
    }
}
